#pragma once

#include <linux/irqdefs.h>

/**
 * request_irq - Add a handler for an interrupt line
 * @irq:	The interrupt line to allocate
 * @handler:	Function to be called when the IRQ occurs.
 *		Primary handler for threaded interrupts
 *		If NULL, the default primary handler is installed
 * @flags:	Handling flags
 * @name:	Name of the device generating this interrupt
 * @dev:	A cookie passed to the handler function
 *
 * This call allocates an interrupt and establishes a handler; see
 * the documentation for request_threaded_irq() for details.
 */
extern int request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,
                       const char *name, void *dev);

extern int request_percpu_irq(unsigned int irq, irq_handler_t handler,
                              const char *devname, void *percpu_dev_id);
